From e136054cedf0b8d9395d35b8d3e5334eb514c47d Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 8 Apr 2010 16:11:17 +0100 Subject: [PATCH] libxl: Fix the build by reinstating some sysctl.physinfo fields. Signed-off-by: Keir Fraser --- xen/arch/x86/sysctl.c | 11 +++++++---- xen/include/public/sysctl.h | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c index ae564d2017..80b7af7baf 100644 --- a/xen/arch/x86/sysctl.c +++ b/xen/arch/x86/sysctl.c @@ -59,10 +59,13 @@ long arch_do_sysctl( cpus_weight(per_cpu(cpu_sibling_map, 0)); pi->cores_per_socket = cpus_weight(per_cpu(cpu_core_map, 0)) / pi->threads_per_core; - pi->nr_cpus = (u32)num_online_cpus(); - pi->nr_nodes = (u32)num_online_nodes(); - pi->sockets_per_node = pi->nr_cpus / - (pi->nr_nodes * pi->cores_per_socket * pi->threads_per_core); + pi->nr_cpus = num_online_cpus(); + pi->nr_nodes = num_online_nodes(); + pi->max_node_id = last_node(node_online_map); + pi->max_cpu_id = last_cpu(cpu_online_map); + pi->sockets_per_node = + pi->nr_cpus / + (pi->nr_nodes * pi->cores_per_socket * pi->threads_per_core); pi->total_pages = total_pages; pi->free_pages = avail_domheap_pages(); pi->scrub_pages = 0; diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h index 27c21ecc14..eb9f1b8325 100644 --- a/xen/include/public/sysctl.h +++ b/xen/include/public/sysctl.h @@ -94,8 +94,8 @@ struct xen_sysctl_physinfo { uint32_t threads_per_core; uint32_t cores_per_socket; uint32_t sockets_per_node; - uint32_t nr_cpus; - uint32_t nr_nodes; + uint32_t nr_cpus, max_cpu_id; + uint32_t nr_nodes, max_node_id; uint32_t cpu_khz; uint64_aligned_t total_pages; uint64_aligned_t free_pages; -- 2.30.2